Trong khi các tập hợp cơ bản như mảng hay slice chỉ giới hạn lưu trữ các phần tử cùng kiểu dữ liệu, cấu trúc (structs) cho phép chúng ta nhóm các loại dữ liệu khác nhau thành một đơn vị duy nhất. Điều này rất quan trọng trong việc thám hiểm sao Hỏa, nơi dữ liệu truyền dẫn bao gồm nhiều loại dữ liệu khác nhau như tên (chuỗi ký tự) và tọa độ (float64).
1. Nhóm ngữ nghĩa so với tính đồng nhất
Khác với một slice chứa các số float chỉ cho biết "có bao nhiêu", cấu trúc cung cấp một hộp chứa được gắn nhãn. Định nghĩa: Trong khi các tập hợp đều có cùng kiểu dữ liệu, thì cấu trúc cho phép bạn nhóm những thứ khác nhau lại với nhau. Điều này giúp tránh hiện tượng "biến hỗn loạn" bằng cách gom dữ liệu liên quan vào các đối tượng có tên rõ ràng.
2. Tính nguyên tử trong các thao tác
Bằng cách nhóm các biến lại, chúng ta đạt được tính nguyên tử. Các hàm như func Step(a, b Universe) hoặc func (u Universe) Next(x, y int) bool có thể thao tác toàn bộ môi trường thay vì phải truy tìm các giá trị nguyên thủy rời rạc. Đối với các nhiệm vụ tạm thời, cấu trúc vô danh (như trong Danh sách 21.1) cung cấp tổ chức tức thì mà không cần định nghĩa kiểu dữ liệu chính thức.